home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekkan Dennou Club 147
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin
/
tools
/
ws
/
wsb.c
< prev
next >
Wrap
C/C++ Source or Header
|
2000-05-05
|
29KB
|
607 lines
#include <stdio.h>
#include <stdlib.h>
int nametb(unsigned char data1,unsigned char data2);
void main(int argc, char *argv[]){
FILE *fp1,*fp2;
int i,j,m=0,datai,datai1,datai2,trashi;
char name[17];
unsigned char datac,datac1,datac2;
int d,ten,max;
char datas[5],trashs[10];
char sa,sb;
int x;
printf("wsb.x ver. 0.01 1999,2000 Takeo Koba\n\n");
if((fp1=fopen(argv[1],"rt"))==NULL){
printf("\n wsb.x [TEAM DATA TEXT] <[WS USER DATA FILE]>\n");
exit(1);
}
if((fp2=fopen(argv[2],"wb"))==NULL){
if((fp2=fopen("WS_TEAM0.USR","wb"))==NULL){
printf("\n savefile open error! \n");
exit(1);
}
}
for(j=0;j<12;j++){
/* チーム名のゴミ */
fscanf(fp1,"%s",trashs);
printf("%s\n",trashs);
/* 野手 */
for(m=0;m<0x0d;m++){
/* 打順 */
fscanf(fp1,"%s",trashs);
fprintf(fp2,"%c",m);
/* 名前 */
fscanf(fp1,"%s",name);
ten = 0;max = 6;
for(i = 0;i < max;i++){
if(ten==1){ /* [濁点] */
d=0xb2;
ten=0;
i--;max--;
}
else if(ten==2){ /* [半濁点] */
d=0xb3;
ten=0;
i--;max--;
}
else{
if(name[i*2]==0){
name[i*2+1] = 0;
name[i*2+2] = 0;
}
datac1=name[i*2];
datac2=name[i*2+1];
d = nametb(datac1,datac2);
if(d/0x100){
if((d/0x100) == 1) ten = 1;
else ten = 2;
}
}
fprintf(fp2,"%c",(char)(d%0x100));
}
/* 背番号 */
fscanf(fp1,"%s",datas);
datai = atoi(datas);
fprintf(fp2,"%c",(char)datai);
/* 打席 */
datac=fgetc(fp1);
fscanf(fp1,"%s ",datas);
if(datas[0] == 'R') datac = 0;
else if(datas[0] == 'L') datac = 1;
else datac = 0;
fprintf(fp2,"%c",datac);
/* フォーム・肌・バット */
datai = 0;
fscanf(fp1,"%s ",datas);
datai = datai + (datas[0]<<4);
fscanf(fp1,"%s ",datas);
datai = datai + (datas[0]<<2);
fscanf(fp1,"%s ",datas);
if((datas[0]%0x10)==0x05) datai++; /* 黒 */
/*木 96d8 黒 8d95*/
fprintf(fp2,"%c",(char)datai);
/* 守備位置 */
fscanf(fp1,"%s ",datas);
switch(datas[0]){
case 'P':datai = 1;break;
case 'C':if(datas[1]=='F') datai = 8;
else datai = 2;
break;
case '1':datai = 3;break;
case '2':datai = 4;break;
case '3':datai = 5;break;
case 'S':datai = 6;break;
case 'L':datai = 7;break;
case 'R':datai = 9;break;
case 'I':datai = 3;break;
case 'O':datai = 7;break;
default:datai = 0;break;
}
fprintf(fp2,"%c",(char)datai);
/* 打率 */
fscanf(fp1,"%s ",datas);
datai = ((datas[1]-'0') - 1)*100 + ((datas[2]-'0') - 5)*10 + (datas[3]-'0');
fprintf(fp2,"%c",(char)datai);
/* 本塁打 */
fscanf(fp1,"%s",datas);
datai = atoi(datas);
fprintf(fp2,"%c",(char)datai);
/* 空白を埋める */
datai = 0;
fprintf(fp2,"%c",(char)datai);
/* BGM */
fscanf(fp1,"%s",datas);
if(datas[1]=='N') datai = 0xFF;
else datai=0;
fprintf(fp2,"%c",(char)datai);
/* BGM No. */
fscanf(fp1,"%s",datas);
datai = atoi(datas);
fprintf(fp2,"%c",(char)datai);
/* 打撃 */
fscanf(fp1,"%s",datas);
datai = atoi(datas);
fprintf(fp2,"%c",(char)datai);
fscanf(fp1,"%s",datas);/* ハイフンを取る */
fscanf(fp1,"%s",datas);
datai = atoi(datas);
fprintf(fp2,"%c",(char)datai);
/* 走力 */
fscanf(fp1,"%s",datas);
datai = atoi(datas) * 2;
fprintf(fp2,"%c",(char)datai);
/* 空白を埋める */
for(i = 0;i < 13;i++){
datai = 0;
fprintf(fp2,"%c",(char)datai);
}
}
/* 投手 */
for(m = 0x0d;m < 0x12;m++){
/* 順 */
fscanf(fp1,"%s",trashs);
fprintf(fp2,"%c",m);
/* 名前 */
fscanf(fp1,"%s",name);
ten = 0;max = 6;
for(i = 0;i < max;i++){
if(ten==1){ /* [濁点] */
d=0xb2;
ten=0;
i--;max--;
}
else if(ten==2){ /* [半濁点] */
d=0xb3;
ten=0;
i--;max--;
}
else{
if(name[i*2]==0){
name[i*2+1] = 0;
name[i*2+2] = 0;
}
datac1=name[i*2];
datac2=name[i*2+1];
d = nametb(datac1,datac2);
if(d/0x100){
if((d/0x100) == 1) ten = 1;
else ten = 2;
}
}
fprintf(fp2,"%c",(char)(d%0x100));
}
/* 背番号 */
fscanf(fp1,"%s",datas);
datai = atoi(datas);
fprintf(fp2,"%c",(char)datai);
/* 投球フォーム */
datac=fgetc(fp1);
fscanf(fp1,"%s ",datas);
if(datas[0] == 'R') datac = 0;
else if(datas[0] == 'L') datac = 1;
else datac = 0;
if(datas[1] == 'U') datac = datac + 4;
fprintf(fp2,"%c",datac);
/* フォーム・肌・バット */
datai = 0;
fscanf(fp1,"%s ",datas);
datai = datai + (datas[0]<<4);
fscanf(fp1,"%s ",datas);
datai = datai + (datas[0]<<2);
fscanf(fp1,"%s ",datas);
if((datas[0]%0x10)==0x05) datai++; /* 黒 */
/*木 96d8 黒 8d95*/
fprintf(fp2,"%c",(char)datai);
/* 守備位置 */
fscanf(fp1,"%s ",datas);
switch(datas[0]){
case 'P':datai = 1;break;
case 'C':if(datas[1]=='F') datai = 8;
else datai = 2;
break;
case '1':datai = 3;break;
case '2':datai = 4;break;
case '3':datai = 5;break;
case 'S':datai = 6;break;
case 'L':datai = 7;break;
case 'R':datai = 9;break;
case 'I':datai = 3;break;
case 'O':datai = 7;break;
default:datai = 0;break;
}
fprintf(fp2,"%c",(char)datai);
/* 防御率 */
fscanf(fp1,"%s ",datas);
datai = ((datas[0]-'0')*100) + ((datas[2]-'0')*10) + (datas[3]-'0');
datai = datai / 2;
fprintf(fp2,"%c",(char)datai);
/* 本塁打 */
fscanf(fp1,"%s",datas);
datai = atoi(datas);
fprintf(fp2,"%c",(char)datai);
/* 空白を埋める */
datai = 0;
fprintf(fp2,"%c",(char)datai);
/* BGM */
fscanf(fp1,"%s",datas);
if(datas[1]=='N') datai = 0xFF;
else datai=0;
fprintf(fp2,"%c",(char)datai);
/* BGM No. */
fscanf(fp1,"%s",datas);
datai = atoi(datas);
fprintf(fp2,"%c",(char)datai);
/* 球速 */
fscanf(fp1,"%s",datas);
datai = atoi(datas);
fprintf(fp2,"%c",(char)datai);
fscanf(fp1,"%s",datas);/* スラッシュを取る */
fscanf(fp1,"%s",datas);
datai = atoi(datas);
fprintf(fp2,"%c",(char)datai);
fscanf(fp1,"%s",datas);/* スラッシュを取る */
fscanf(fp1,"%s",datas);
datai = atoi(datas);
fprintf(fp2,"%c",(char)datai);
/* 変化球 */
fscanf(fp1,"%s",datas);
datai = atoi(datas);
fprintf(fp2,"%c",(char)datai);
fscanf(fp1,"%s",datas);/* ハイフンを取る */
fscanf(fp1,"%s",datas);
datai = atoi(datas);
fprintf(fp2,"%c",(char)datai);
fscanf(fp1,"%s",datas);/* ハイフンを取る */
fscanf(fp1,"%s",datas);
datai = atoi(datas);
fprintf(fp2,"%c",(char)datai);
/* スタミナ */
fscanf(fp1,"%s",datas);
datai = atoi(datas);
fprintf(fp2,"%c",(char)datai);
/* 空白を埋める */
for(i = 0;i < 9;i++){
datai = 0;
fprintf(fp2,"%c",(char)datai);
}
}
/* 監督 */
/* 余分なテキスト */
fscanf(fp1,"%s",datas);
/* 名前 */
fscanf(fp1,"%s",name);
ten = 0;max = 5;
for(i = 0;i < max;i++){
if(ten==1){ /* [濁点] */
d=0xb2;
ten=0;
i--;max--;
}
else if(ten==2){ /* [半濁点] */
d=0xb3;
ten=0;
i--;max--;
}
else{
if(name[i*2]==0){
name[i*2+1] = 0;
name[i*2+2] = 0;
}
datac1=name[i*2];
datac2=name[i*2+1];
d = nametb(datac1,datac2);
if(d/0x100){
if((d/0x100) == 1) ten = 1;
else ten = 2;
}
}
fprintf(fp2,"%c",(char)(d%0x100));
}
/* 体型 */
datai = 0x20;
fprintf(fp2,"%c",(char)datai);
fscanf(fp1,"%s",datas);
datac1=datas[0];datac2=datas[1];
ten = 0;
d = nametb(datac1,datac2);
if(d==0xa3) datai = 0xFF;
else datai = 0;
fprintf(fp2,"%c",(char)datai);
/* 空白を埋める */
for(i = 0;i < 25;i++){
datai = 0;
fprintf(fp2,"%c",(char)datai);
}
}
fclose(fp1);
fclose(fp2);
}
int nametb(unsigned char data1,unsigned char data2){
int d;unsigned int data;
data = ((((int)data1)%0x100) * 0x100) + (((int)data2) % 0x100);
switch(data%0x10000){
case 0x8283:d=0x18;break; /* [コピーライトのC] */
case 0x90e6:d=0x19;break; /* 先 */
case 0x8140:d=0x20;break; /* [空白] */
case 0x8149:d=0x21;break; /* ! */
case 0x8168:d=0x22;break; /* ” */
case 0x8194:d=0x23;break; /* # */
case 0x8190:d=0x24;break; /* $ */
case 0x8193:d=0x25;break; /* % */
case 0x8195:d=0x26;break; /* & */
case 0x8166:d=0x27;break; /* ’ */
case 0x8196:d=0x2a;break; /* * */
case 0x817b:d=0x2b;break; /* + */
case 0x8165:d=0x2c;break; /* , */
case 0x817c:d=0x2d;break; /* - */
case 0x8145:d=0x2e;break; /* ・ */
case 0x815e:d=0x2f;break; /* / */
case 0x814f:d=0x30;break; /* 0 */
case 0x8150:d=0x31;break; /* 1 */
case 0x8151:d=0x32;break; /* 2 */
case 0x8152:d=0x33;break; /* 3 */
case 0x8153:d=0x34;break; /* 4 */
case 0x8154:d=0x35;break; /* 5 */
case 0x8155:d=0x36;break; /* 6 */
case 0x8156:d=0x37;break; /* 7 */
case 0x8157:d=0x38;break; /* 8 */
case 0x8158:d=0x39;break; /* 9 */
case 0x8146:d=0x3a;break; /* : */
case 0x8147:d=0x3b;break; /* ; */
case 0x8183:d=0x3c;break; /* < */
case 0x8181:d=0x3d;break; /* = */
case 0x8184:d=0x3e;break; /* > */
case 0x8148:d=0x3f;break; /* ? */
case 0x8197:d=0x40;break; /* @ */
case 0x8260:d=0x41;break; /* A */
case 0x8261:d=0x42;break; /* B */
case 0x8262:d=0x43;break; /* C */
case 0x8263:d=0x44;break; /* D */
case 0x8264:d=0x45;break; /* E */
case 0x8265:d=0x46;break; /* F */
case 0x8266:d=0x47;break; /* G */
case 0x8267:d=0x48;break; /* H */
case 0x8268:d=0x49;break; /* I */
case 0x8269:d=0x4a;break; /* J */
case 0x826a:d=0x4b;break; /* K */
case 0x826b:d=0x4c;break; /* L */
case 0x826c:d=0x4d;break; /* M */
case 0x826d:d=0x4e;break; /* N */
case 0x826e:d=0x4f;break; /* O */
case 0x826f:d=0x50;break; /* P */
case 0x8270:d=0x51;break; /* Q */
case 0x8271:d=0x52;break; /* R */
case 0x8272:d=0x53;break; /* S */
case 0x8273:d=0x54;break; /* T */
case 0x8274:d=0x55;break; /* U */
case 0x8275:d=0x56;break; /* V */
case 0x8276:d=0x57;break; /* W */
case 0x8277:d=0x58;break; /* X */
case 0x8278:d=0x59;break; /* Y */
case 0x8279:d=0x5a;break; /* Z */
case 0x82a0:d=0x80;break; /* あ */
case 0x82a2:d=0x81;break; /* い */
case 0x82a4:d=0x82;break; /* う */
case 0x82a6:d=0x83;break; /* え */
case 0x82a8:d=0x84;break; /* お */
case 0x82a9:d=0x85;break; /* か */
case 0x82aa:d=0x185;break; /* が */
case 0x82ab:d=0x86;break; /* き */
case 0x82ac:d=0x186;break; /* ぎ */
case 0x82ad:d=0x87;break; /* く */
case 0x82ae:d=0x187;break; /* ぐ */
case 0x82af:d=0x88;break; /* け */
case 0x82b0:d=0x188;break; /* げ */
case 0x82b1:d=0x89;break; /* こ */
case 0x82b2:d=0x189;break; /* ご */
case 0x82b3:d=0x8a;break; /* さ */
case 0x82b4:d=0x18a;break; /* ざ */
case 0x82b5:d=0x8b;break; /* し */
case 0x82b6:d=0x18b;break; /* じ */
case 0x82b7:d=0x8c;break; /* す */
case 0x82b8:d=0x18c;break; /* ず */
case 0x82b9:d=0x8d;break; /* せ */
case 0x82ba:d=0x18d;break; /* ぜ */
case 0x82bb:d=0x8e;break; /* そ */
case 0x82bc:d=0x18e;break; /* ぞ */
case 0x82bd:d=0x8f;break; /* た */
case 0x82be:d=0x18f;break; /* だ */
case 0x82bf:d=0x90;break; /* ち */
case 0x82c0:d=0x190;break; /* ぢ */
case 0x82c2:d=0x91;break; /* つ */
case 0x82c3:d=0x191;break; /* づ */
case 0x82c4:d=0x92;break; /* て */
case 0x82c5:d=0x192;break; /* で */
case 0x82c6:d=0x93;break; /* と */
case 0x82c7:d=0x193;break; /* ど */
case 0x82c8:d=0x94;break; /* な */
case 0x82c9:d=0x95;break; /* に */
case 0x82ca:d=0x96;break; /* ぬ */
case 0x82cb:d=0x97;break; /* ね */
case 0x82cc:d=0x98;break; /* の */
case 0x82cd:d=0x99;break; /* は */
case 0x82ce:d=0x199;break; /* ば */
case 0x82cf:d=0x299;break; /* ぱ */
case 0x82d0:d=0x9a;break; /* ひ */
case 0x82d1:d=0x19a;break; /* び */
case 0x82d2:d=0x29a;break; /* ぴ */
case 0x82d3:d=0x9b;break; /* ふ */
case 0x82d4:d=0x19b;break; /* ぶ */
case 0x82d5:d=0x29b;break; /* ぷ */
case 0x82d6:d=0x9c;break; /* へ */
case 0x82d7:d=0x19c;break; /* べ */
case 0x82d8:d=0x29c;break; /* ぺ */
case 0x82d9:d=0x9d;break; /* ほ */
case 0x82da:d=0x19d;break; /* ぼ */
case 0x82db:d=0x29d;break; /* ぽ */
case 0x82dc:d=0x9e;break; /* ま */
case 0x82dd:d=0x9f;break; /* み */
case 0x82de:d=0xa0;break; /* む */
case 0x82df:d=0xa1;break; /* め */
case 0x82e0:d=0xa2;break; /* も */
case 0x82e2:d=0xa3;break; /* や */
case 0x82e4:d=0xa4;break; /* ゆ */
case 0x82e6:d=0xa5;break; /* よ */
case 0x82e7:d=0xa6;break; /* ら */
case 0x82e8:d=0xa7;break; /* り */
case 0x82e9:d=0xa8;break; /* る */
case 0x82ea:d=0xa9;break; /* れ */
case 0x82eb:d=0xaa;break; /* ろ */
case 0x82ed:d=0xab;break; /* わ */
case 0x82f0:d=0xac;break; /* を */
case 0x82f1:d=0xad;break; /* ん */
case 0x82c1:d=0xae;break; /* っ */
case 0x82e1:d=0xaf;break; /* ゃ */
case 0x82e3:d=0xb0;break; /* ゅ */
case 0x82e5:d=0xb1;break; /* ょ */
case 0x814a:d=0xb2;break; /* ゛[濁点] */
case 0x814b:d=0xb3;break; /* ゜[半濁点] */
case 0x8341:d=0xb4;break; /* ア */
case 0x8343:d=0xb5;break; /* イ */
case 0x8345:d=0xb6;break; /* ウ */
case 0x8347:d=0xb7;break; /* エ */
case 0x8349:d=0xb8;break; /* オ */
case 0x834a:d=0xb9;break; /* カ */
case 0x834b:d=0x1b9;break; /* ガ */
case 0x834c:d=0xba;break; /* キ */
case 0x834d:d=0x1ba;break; /* ギ */
case 0x834e:d=0xbb;break; /* ク */
case 0x834f:d=0x1bb;break; /* グ */
case 0x8350:d=0xbc;break; /* ケ */
case 0x8351:d=0x1bc;break; /* ゲ */
case 0x8352:d=0xbd;break; /* コ */
case 0x8353:d=0x1bd;break; /* ゴ */
case 0x8354:d=0xbe;break; /* サ */
case 0x8355:d=0x1be;break; /* ザ */
case 0x8356:d=0xbf;break; /* シ */
case 0x8357:d=0x1bf;break; /* ジ */
case 0x8358:d=0xc0;break; /* ス */
case 0x8359:d=0x1c0;break; /* ズ */
case 0x835a:d=0xc1;break; /* セ */
case 0x835b:d=0x1c1;break; /* ゼ */
case 0x835c:d=0xc2;break; /* ソ */
case 0x835d:d=0x1c2;break; /* ゾ */
case 0x835e:d=0xc3;break; /* タ */
case 0x835f:d=0x1c3;break; /* ダ */
case 0x8360:d=0xc4;break; /* チ */
case 0x8361:d=0x1c4;break; /* ヂ */
case 0x8363:d=0xc5;break; /* ツ */
case 0x8364:d=0x1c5;break; /* ヅ */
case 0x8365:d=0xc6;break; /* テ */
case 0x8366:d=0x1c6;break; /* デ */
case 0x8367:d=0xc7;break; /* ト */
case 0x8368:d=0x1c7;break; /* ド */
case 0x8369:d=0xc8;break; /* ナ */
case 0x836a:d=0xc9;break; /* ニ */
case 0x836b:d=0xca;break; /* ヌ */
case 0x836c:d=0xcb;break; /* ネ */
case 0x836d:d=0xcc;break; /* ノ */
case 0x836e:d=0xcd;break; /* ハ */
case 0x836f:d=0x1cd;break; /* バ */
case 0x8370:d=0x2cd;break; /* パ */
case 0x8371:d=0xce;break; /* ヒ */
case 0x8372:d=0x1ce;break; /* ビ */
case 0x8373:d=0x2ce;break; /* ピ */
case 0x8374:d=0xcf;break; /* フ */
case 0x8375:d=0x1cf;break; /* ブ */
case 0x8376:d=0x2cf;break; /* プ */
case 0x8377:d=0xd0;break; /* ヘ */
case 0x8378:d=0x1d0;break; /* ベ */
case 0x8379:d=0x2d0;break; /* ペ */
case 0x837a:d=0xd1;break; /* ホ */
case 0x837b:d=0x1d1;break; /* ボ */
case 0x837c:d=0x2d1;break; /* ポ */
case 0x837d:d=0xd2;break; /* マ */
case 0x837e:d=0xd3;break; /* ミ */
case 0x8380:d=0xd4;break; /* ム */
case 0x8381:d=0xd5;break; /* メ */
case 0x8382:d=0xd6;break; /* モ */
case 0x8384:d=0xd7;break; /* ヤ */
case 0x8386:d=0xd8;break; /* ユ */
case 0x8388:d=0xd9;break; /* ヨ */
case 0x8389:d=0xda;break; /* ラ */
case 0x838a:d=0xdb;break; /* リ */
case 0x838b:d=0xdc;break; /* ル */
case 0x838c:d=0xdd;break; /* レ */
case 0x838d:d=0xde;break; /* ロ */
case 0x838f:d=0xdf;break; /* ワ */
case 0x8392:d=0xe0;break; /* ヲ */
case 0x8393:d=0xe1;break; /* ン */
case 0x8394:d=0x1b6;break; /* ヴ */
case 0x8362:d=0xe2;break; /* ッ */
case 0x8383:d=0xe3;break; /* ャ */
case 0x8385:d=0xe4;break; /* ュ */
case 0x8387:d=0xe5;break; /* ョ */
case 0x8340:d=0xe6;break; /* ァ */
case 0x8342:d=0xe7;break; /* ィ */
case 0x8344:d=0xe8;break; /* ゥ */
case 0x8346:d=0xe9;break; /* ェ */
case 0x8348:d=0xea;break; /* ォ */
case 0x815b:d=0xeb;break; /* ー */
case 0x89f1:d=0xec;break; /* 回 */
case 0x967b:d=0xed;break; /* 本 */
case 0x9668:d=0xee;break; /* 防 */
case 0x8945:d=0xef;break; /* 右 */
case 0x8db6:d=0xfc;break; /* 左 */
case 0x8141:d=0xfd;break; /* ゛[左下表示] */
case 0x8142:d=0xfe;break; /* ゜[左下表示] */
case 0x81a1:d=0xff;break; /* ■[四角形] */
default:d=0x20;break; /* [空白] */
}
return d;
}